home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 2
/
The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO
/
pascal
/
inline22.zip
/
UNINLINE.DOC
< prev
next >
Wrap
Text File
|
1988-03-05
|
5KB
|
199 lines
March 5, 1988
UNINLINE--AN INLINE DISASSEMBLER
Version 1.1
OVERVIEW
UNINLINE.EXE is a disassembler which accepts an 'object' file
consisting of Turbo Pascal (tm) Inline statements and produces an
assembly language source file. The source file may then be
modified and reassembled to Inline statements using INLINE.EXE.
Figure 1 shows an Inline statement input file and Figure 2, the
resulting source code disassembly.
LOADING AND RUNNING UNINLINE
First create an EXE file, UNINLINE.EXE, by compiling UNINLINE.PAS
using version 4 of the Turbo Pascal compiler. The files
UNPARS.INC and FLPT.INC are also required for compilation.
UNINLINE is called at the DOS prompt with two filename parameters
specifying the names of the object and source files. If no
extensions are given, .OBJ and .ASM are used by default. For
instance,
UNINLINE ABC DEF
will cause UNINLINE to look for an object file, ABC.OBJ, and
create a source file DEF.ASM. Files with no extension may be
input or created by using a simple '.' for the extension.
If the second filename is missing from the command line, an ASM
file will be created using the same name as the object file. If
neither filename is specified, then names will be requested once
execution starts.
Once execution begins, UNINLINE will run to completion with the
only console output being error messages.
OPERATION
1. UNINLINE should accept any syntax within an Inline statement
which is acceptable by Turbo Pascal. Disassembly starts
with the word 'Inline' and ends with the ending ')'.
Intervening Pascal comments are ignored. Thus it is
possible to digest an entire Pascal source file processing
only the Inline statements.
1
2. The source code instructions resulting from each Inline
statement are separated by the pseudo-instruction, NEW.
When reassembled using INLINE.EXE, the NEW instruction
causes separate Inline statements to be generated.
3. Labels are inserted in the assembly language source code as
required. Labels consist of the letter, X, and a decimal
number which is the number of bytes from the start of the
disassembly. Labels are only inserted on those instructions
which are the destination of a jump or call.
VERSIONS
1.1 Convert source for Turbo 4.
(C) Copyright 1985,86 by L. David Baldwin.
UNINLINE may be copied and distributed freely providing that no
fee is charged and it is not part of a package for which a charge
is made.
Please report all bugs, suggestions, and problems to Dave
Baldwin, CompuServe ID #76327,53.
22 Fox Den Rd., (Summer) 144 13th St. East, (Winter)
Hollis, NH 03049 Tierra Verde, FL 33715
(603) 465-7857 (813) 867-3030
Turbo Pascal is a trademark of Borland International Inc.
2
Inline($FC/$8A/$86/>CH/$8B/$8E/>LIMIT/$09/$C9/$9C/$79/$03/
$F7/$D9/$FD/$89/$CA/$C4/$BE/>T/$F2/$AE/$75/$01/$41/$29/$CA/
$9D/$79/$02/$F7/$DA/$89/$96/>RSLT);
Figure 1: Inline Statement Input File
CLD
MOV AL,[BP+>CH]
MOV CX,[BP+>LIMIT]
OR CX,CX
PUSHF
JNS X17
NEG CX
STD
X17: MOV DX,CX
LES DI,[BP+>T]
REPNE
SCASB
JNZ X28
INC CX
X28: SUB DX,CX
POPF
JNS X35
NEG DX
X35: MOV [BP+>RSLT],DX
Figure 2: Disassembled Output File
3